Web applications that are written with client-side scripts such as JavaScript, VBScript, and so on run within the context of a web browser. These scripts are tightly coupled with the processes and threads of the web browser. In other words, if the script in a particular web application performs some operation that takes a long time to finish or that will never finish because of a logic error, there is no easy way to halt execution. This can cause problems for both end users of the web application and for developers debugging the web application. The end user of a web application that has appeared to “hang” waits and wonders if something else is actually going to ever happen, or they may close out of the browser and possibly re-start the process. Developers debugging a web application that has appeared to “hang” do not have an easy way of entering debug mode at that point to see what is actually causing the delay.